package ru.spies.forms;

import javax.servlet.http.Cookie;

import ru.spies.content.SystemContent;

public class ShowForm extends FormCreator {

	private static ShowForm statThis;
	
	private static final String SHOW_FORM_FUNC_NAMES_ARRAY[]={
		"Получить список документов","Получить список заданий ","Получить список заданий агентам",
		"Получить список агентов", "Получить список отделов","Получить список стран",
		"Получить список типов секретности","Получить список типов заданий"
	};
	
	private ShowForm() {
		setCookieName(LastCookies.COOKIE_NAME_FORM_FOR_WORK);
	}
	
	public static ShowForm getInstance(){
		if (statThis==null){
			statThis = new ShowForm();
		}
		return statThis;
	}

	@Override
	protected ICookie childCookieWork(Cookie cookie) {
		if (Integer.valueOf(cookie.getValue())==EDBTables.COUNTRY.ordinal()){
			return EDBTables.COUNTRY;
		}
		if (Integer.valueOf(cookie.getValue())==EDBTables.AGENT.ordinal()){
			return EDBTables.AGENT;
		}
		if (Integer.valueOf(cookie.getValue())==EDBTables.AGENT_AND_TASK.ordinal()){
			return EDBTables.AGENT_AND_TASK;
		}
		if (Integer.valueOf(cookie.getValue())==EDBTables.TASK.ordinal()){
			return EDBTables.TASK;
		}
		if (Integer.valueOf(cookie.getValue())==EDBTables.DEPARTMENT.ordinal()){
			return EDBTables.DEPARTMENT;
		}
		if (Integer.valueOf(cookie.getValue())==EDBTables.DOCUMENT.ordinal()){
			return EDBTables.DOCUMENT;
		}
		if (Integer.valueOf(cookie.getValue())==EDBTables.IMPORTANCE.ordinal()){
			return EDBTables.IMPORTANCE;
		}
		if (Integer.valueOf(cookie.getValue())==EDBTables.TASK_TYPE.ordinal()){
			return EDBTables.TASK_TYPE;
		}
		return null;
	}

	@Override
	protected String workWithCookieValue(ICookie cook) {
		/* 
		 * будем выводить только форму для подтверждения отображения
		 * 
		DBTables func = (DBTables) cook;
		LastCookies.getInstance().setLastTable(func);
		switch (func) {
		case COUNTRY:
			return createShowCountryForm();
		case AGENT:
			return createShowAgentForm();
		case AGENT_AND_TASK:
			return createShowAgentAndTaskForm();
		case DEPARTMENT:
			return createShowDepartementForm();
		case DOCUMENT:
			return createShowDocumentForm();
		case IMPORTANCE:
			return createShowImportanceForm();
		case TASK:
			return createShowTaskForm();
		case TASK_TYPE:
			return createShowTaskTypeForm();
		default:
			return SOME_ERRORS;
		} */
		EDBTables tab = (EDBTables) cook;
		LastCookies.getInstance().setLastTable(tab);
		return createFormWithPostMethod(SystemContent.getInstance().acceptContent(),SHOW_RESULT_LINK);
	}

	@Override
	public String createThisForm() {
		return createForm(SystemContent.getInstance().formForWorkContent(SHOW_FORM_FUNC_NAMES_ARRAY));
	}
	
	/*
	 * Временно ненужны 
	 * 
	public String createShowCountryForm(){
		return acceptShowing(SHOW_RESULT_LINK);
	}
	
	public String createShowAgentForm(){
		return acceptShowing(SHOW_RESULT_LINK);
	}
	
	public String createShowAgentAndTaskForm(){
		return acceptShowing(SHOW_RESULT_LINK);
	}
	
	public String createShowDepartementForm(){
		return acceptShowing(SHOW_RESULT_LINK);
	}
	
	public String createShowDocumentForm(){
		return acceptShowing(SHOW_RESULT_LINK);
	}
	
	public String createShowTaskForm(){
		return acceptShowing(SHOW_RESULT_LINK);
	}
	
	public String createShowTaskTypeForm(){
		return acceptShowing(SHOW_RESULT_LINK);
	}
	
	public String createShowImportanceForm(){
		return acceptShowing(SHOW_RESULT_LINK);
	}
*/
	
}
